package agente;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Random;

import dados.Accao;
import dados.Jogador;
import dados.Stock;
import dados.TipoSugestao;

public class Vigarista {

	private Jogador jogador;
	private ArrayList<Stock> stocks;

	public Vigarista(Jogador jogador, ArrayList<Stock> stocks){
		this.jogador = jogador;
		this.stocks = stocks;
	}

	public ArrayList<Sugestao> sugerirAleatoriamenteVendas(int qtdsugestoes){
		ArrayList<Stock> stocks = new ArrayList<Stock>(matchAccaoStock(jogador.getAccoes()));
		ArrayList<Sugestao> resultado = new ArrayList<Sugestao>();
		Random random = new Random();
		int i = 1;
		while(i != qtdsugestoes){
			if(!stocks.isEmpty()){
				resultado.add(new Sugestao(stocks.get(random.nextInt(stocks.size())), TipoSugestao.VENDA_VIGARISTA));
			}
			i++;
		}
		return resultado;
	}
	
	public ArrayList<Sugestao> sugerirAleatoriamenteCompras(int qtdsugestoes){
		ArrayList<Stock> stocks = new ArrayList<Stock>(this.stocks);
		ArrayList<Sugestao>resultado = new ArrayList<Sugestao>();
		Random random = new Random();
		int i = 1;
		while(i != qtdsugestoes){
			if(!stocks.isEmpty()){
				resultado.add(new Sugestao(stocks.get(random.nextInt(stocks.size())), TipoSugestao.COMPRA_VIGARISTA));
			}
			i++;
		}
		return resultado;
	}
	
	public ArrayList<Stock> matchAccaoStock(LinkedList<Accao> empresas){
		ArrayList<Stock> matchstocks = new ArrayList<Stock>();
		for(int i = 0; i < empresas.size(); i++){
			for(int j = 0; j < stocks.size(); j++){
				if(empresas.get(i).getSigla().equals(stocks.get(j).getSigla())){
					matchstocks.add(stocks.get(j));
				}
			}
		}
		return matchstocks;
	}

}
